package org.xx.armory.doc;

import java.io.Serializable;

import static org.apache.commons.lang3.StringUtils.trimToEmpty;

/**
 * 文档元素, 任何文档都由若干文档元素组成。
 *
 * @author Haart
 * @see Document
 */
public abstract class Element
        implements Serializable {
    private static final long serialVersionUID = 1L;

    private final String className;

    /**
     * 构造文档元素实例。
     *
     * @param className
     *         元素的类名, 会被正规化。
     */
    protected Element(
            String className
    ) {
        this.className = trimToEmpty(className);
    }

    /**
     * 获取文档元素的类名。
     *
     * @return 文档元素的类名。
     */
    public String getClassName() {
        return className;
    }

}
